package com.xyw.code.springcloudgateway.config;

import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.RequestMapping;
import reactor.core.publisher.Mono;

@Configuration
public class GatewayRoutes {


    @RequestMapping("/test111")
    public Mono<String> test111() {
        return Mono.just("fallback1111");
    }

//
//    @RequestMapping("/fallback")
//    public Mono<String> fallback() {
//        return Mono.just("fallback");
//    }


//    @Bean
//    public RouteLocator myRoutes(RouteLocatorBuilder builder) {
//        //搜索转发都转发到http://localhost:8001/test上
//        return builder.routes()
//                .route(p -> p
//                        .path("/test")
//                        .filters(f -> {
//                            f.addRequestHeader("Hello", "World");
//                            return f;
//                        })
//                        .uri("http://localhost:8001"))
//                .route(p -> p.path("/test222")
//                        .filters(f -> f.hystrix(config -> config.setName("mycmd").setFallbackUri("forward:/fallback")))
//                        .uri("http://localhost:8001")  )
//                .build();
//    }

//    @Bean
//    public RouteLocator routeLocator(RouteLocatorBuilder builder) {
//        简单的转发
//        return builder.routes()
//                .route(r ->
//                        r.path("/java/**")
//                                .filters(
//                                        f -> f.stripPrefix(1)
//                                )
//                                .uri("http://localhost:8001/**")
//                )
//                .build();
//    }
}
